<?php

class Admin_HabilitacoesController extends Zend_Controller_Action
{

    public function init()
    {
        $this->_helper->layout
             ->setLayoutPath(APPLICATION_PATH.'/modules/admin/layouts/scripts')
             ->setLayout('admin');
    }
    
    
    //ACTION: apenas redirecionar para um local de apresentaçao para o usuário
    public function habilitacoesDoServidorAction() 
    {
        $formulario         = new Admin_Form_HabilitacoesServidor();
        $modHabilitacoes    = new Admin_Model_Habilitacoes();
        $modCandidato       = new Admin_Model_Candidatos();
        $post               = $this->getRequest()->getPost();
        $matricula          = Zend_Filter::filterStatic($post['matricula'], 'Digits'); 
        $conteudo           = ''; // Se houver html será mostrado na view...
        
        // Verifica se o usuário tentou fazer alguma consulta.
        if (!empty($post)) {
            if ($formulario->isValid($post)) {
                $infoCandidato  = $modCandidato->infoCandidatoPorMatricula($matricula);
                $habilitacoes   = $modHabilitacoes->listarHabilitacoesPorMatricula($matricula);
                
                // Retorna a lista de inscrições realizadas.
                $conteudo = $this->view->partial('habilitacoes/_result-habilitacoes-servidor.phtml', array('habilitacoes'  => $habilitacoes, 
                                                                                                           'infoCandidato' => $infoCandidato));                
             }
        }
        
        $this->view->formulario     = $formulario;
        $this->view->resultContent  = $conteudo;
    }
    
    
    //ACTION: Insere uma nova habilitações no perfil do candidato
    public function inserirHabilitacaoAction() 
    {
        $modCandidato   = new Admin_Model_Candidatos();
        
        $post           = $this->getRequest()->getParams();
        $matricula      = Zend_Filter::filterStatic($post['matricula'], 'Alnum');
        $coHabilitacao  = Zend_Filter::filterStatic($post['coHabilitacao'], 'Digits');
        
        if (!empty($post)) {
            $result = $modCandidato->inserirHabilitacao($matricula, $coHabilitacao);
            
        } else {
            $result = array('type'      => 'erro',
                            'result'    => false,
                            'flashMsg'  => 'As informações necessárias não foram enviadas.');            
        }
        
        $this->_helper->json($result);
    }
    
    //ACTION: remove a habilitação de um candidato.
    public function removerHabilitacaoAction() 
    {
        $modCandidato   = new Admin_Model_Candidatos();
        
        $post           = $this->getRequest()->getPost();
        $matricula      = Zend_Filter::filterStatic($post['matricula'], 'Alnum');
        $coHabilitacao  = Zend_Filter::filterStatic($post['coHabilitacao'], 'Digits');
        
        if (!empty($post)) {
            $result = $modCandidato->removerHabilitacao($matricula, $coHabilitacao);
            
        } else {
            $result = array('type'      => 'erro',
                            'result'    => false,
                            'flashMsg'  => 'As informações necessárias não foram enviadas.');            
        }
        
        $this->_helper->json($result);
    }
    
    
    public function completeHabilitacaoAction() 
    {
        $termo      = $this->_getParam('term');
        $arrayInfo  = array();
        
        if (strlen($termo) >= 1) {
            $modHabilitacoes  = new Admin_Model_Habilitacoes();
            $arrayInfo        = $modHabilitacoes->listarHabilitacoes(strtoupper($termo));
        }
        
        $this->_helper->json($arrayInfo);
    }
}